package com.github.cyf.interceptor.encrypt;

import com.github.cyf.interceptor.encrypt.impl.MD5EncryptStrategy;

import java.lang.annotation.*;

/**
 * 作用于 mapper 方法，表示对结果进行加密
 * @author chenyifan
 * @create 2024-04-14 17:43
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface EncryptResult {

    /**
     * 加密策略，默认 MD5 加密
     */
    Class <? extends IEncryptResultFieldStrategy> encryptStrategy() default MD5EncryptStrategy.class;

    /**
     * 加密字段
     * mapper 方法返回值为 String 或者 List<String> 不需要 fieldList
     */
    String[] fields() default {};
}